﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Media.Imaging;

namespace NUMIMAX
{
    public class CoinMagazyn
    {
        #region Pola
            private string coin_name; //nazwa monety
            private MemoryStream coin_image; //obrazek monety
            private string emission_date; // RRRR/MM/DD
            private int face_value; //nominał
            private string circulation; //nakład
            private string stamp; //stempel
            private string alloy; //stop
            private string weight; //waga
            private string diameter; //średnica
            private string rant_of_coin; // to jest obwodzik monetki, może być płaski bądź ząbkowany
            private string catalog_number; //numer katalogowy
            private string coin_series; //seria monety
            private string index1;
            private string index2;

            private string s_i_p_s_t_s_m; // sumaryczna ilosc posiadanych sztuk tej samej monety
            private string s_k_p_s_t_s_m; // sumaryczna kwota poniesionych wydatków na posiadane monety
            private string o_w_p_m; //obecna wartosc posiadanych monet (brana z wartosci z aktualizacji)
            private string i_s_s; //ilość sprzedanych sztuk
            private string p_w_n_s_m; // poniesione wydatki na sprzedane monety(wszystkie monety w sumie)
            private string c_s;// cena sprzedaży (wszystkie sprzedane monety w sumie)
            private string z_s_w_s_m;// zysk / strata z wszystkch sprzedanych monet
        #endregion


        #region Konstruktor
        /// <summary>
        /// Konstruktor Monetki.
        /// </summary>
        /// <param name="coin_name">Nazwa monety.</param>
        /// <param name="coin_image">Obrazek monety.</param>
        /// <param name="emission_date">Data emisji.</param>
        /// <param name="face_value">Nominał.</param>
        /// <param name="circulation">Nakład.</param>
        /// <param name="stamp">Stempel.</param>
        /// <param name="alloy">Stop metalu.</param>
        /// <param name="weight">Waga.</param>
        /// <param name="diameter">Średnica.</param>
        /// <param name="rant_of_coin">Rant, obwód monetki, ząbkowany bądź płaski.</param>
        /// <param name="catalog_number">Numer katalogowy.</param>
        /// <param name="coin_series">Seria monety.</param>
        /// <param name="index1">Pierwszy index.</param>
        /// <param name="index2">Drugi index.</param>
        /// <param name="s_i_p_s_t_s_m">sumaryczna ilosc posiadanych sztuk tej samej monety.</param>
        /// <param name="s_k_p_s_t_s_m">sumaryczna kwota poniesionych wydatków na posiadane monety.</param>
        /// <param name="o_w_p_m">obecna wartosc posiadanych monet (brana z wartosci z aktualizacji).</param>
        /// <param name="i_s_s">ilość sprzedanych sztuk.</param>
        /// <param name="p_w_n_s_m">poniesione wydatki na sprzedane monety(wszystkie monety w sumie).</param>
        /// <param name="c_s">cena sprzedaży (wszystkie sprzedane monety w sumie).</param>
        /// <param name="z_s_w_s_m">zysk / strata z wszystkch sprzedanych monet.</param>
        
        public CoinMagazyn(string coin_name, MemoryStream coin_image, string emission_date, int face_value, string circulation,  string stamp, string alloy, string weight, string diameter, string rant_of_coin, string catalog_number, string coin_series, string index1, string index2
            , string _s_i_p_s_t_s_m, string _s_k_p_s_t_s_m, string _o_w_p_m, string _i_s_s, string _p_w_n_s_m, string _c_s, string _z_s_w_s_m)
        {
            this.coin_name = coin_name;
            this.emission_date = emission_date;
            this.face_value = face_value;
            this.circulation = circulation;
            this.stamp = stamp;
            this.alloy = alloy;
            this.weight = weight;
            this.diameter = diameter;
            this.rant_of_coin = rant_of_coin;
            this.catalog_number = catalog_number;
            this.coin_series = coin_series;
            this.index1 = index1;
            this.index2 = index2;
            this.s_i_p_s_t_s_m = _s_i_p_s_t_s_m;
            this.s_k_p_s_t_s_m = _s_k_p_s_t_s_m;
            this.o_w_p_m = _o_w_p_m;
            this.i_s_s = _i_s_s;
            this.p_w_n_s_m = _p_w_n_s_m;
            this.c_s = _c_s;
            this.z_s_w_s_m = _z_s_w_s_m;
        }
        #endregion


        #region Akcesory
        /// <summary>
        /// Nazwa monety.
        /// </summary>
        public string NameOfCoin
        {
            get { return coin_name; }
        }

        /// <summary>
        /// Obrazek monety.
        /// </summary>
        public BitmapImage CoinImage
        {
            get
            {
                BitmapImage asd = new BitmapImage();

                asd.BeginInit();
                asd.StreamSource = coin_image;

                asd.EndInit();
                return asd;
            }
        }

        /// <summary>
        /// Data emisji.
        /// </summary>
        public string EmissionDate
        {
            get { return emission_date; }
        }

        /// <summary>
        /// Nominał
        /// </summary>
        public int FaceValue
        {
            get { return face_value; }
        }

        /// <summary>
        /// Nakład
        /// </summary>
        public string Circulation
        {
            get { return circulation; }
        }

        /// <summary>
        /// Stempel.
        /// </summary>
        public string Stamp
        {
            get { return stamp; }
        }

        /// <summary>
        /// Stop metalu monety.
        /// </summary>
        public string Alloy
        {
            get { return alloy; }
        }

        /// <summary>
        /// Waga monety.
        /// </summary>
        public string Weight
        {
            get { return weight; }
        }

        /// <summary>
        /// Średnica monety.
        /// </summary>
        public string Diameter
        {
            get { return diameter; }
        }

        /// <summary>
        /// Rant monety, czyli rodzaj obwodu, ząbkowany bądź płaski.
        /// </summary>
        public string CoinRant
        {
            get { return rant_of_coin; }
        }

        /// <summary>
        /// Numer katalogowy monety.
        /// </summary>
        public string CatalogNumber
        {
            get { return catalog_number; }
        }

        /// <summary>
        /// Seria monety.
        /// </summary>
        public string CoinSeries
        {
            get { return coin_series; }
        }

        /// <summary>
        /// Pierwszy index.
        /// </summary>
        public string INDEX1
        {
            get { return index1; }
        }

        /// <summary>
        /// Drugi index.
        /// </summary>
        public string INDEX2
        {
            get { return index2; }
        }

        /// <summary>
        /// sumaryczna ilosc posiadanych sztuk tej samej monety.
        /// </summary>
        public string S_I_P_S_T_S_M  
        {
            get { return s_i_p_s_t_s_m; }
        }

        /// <summary>
        /// sumaryczna kwota poniesionych wydatków na posiadane monety.
        /// </summary>
        public string S_K_P_S_T_S_M
        {
            get { return s_k_p_s_t_s_m; }
        }

        /// <summary>
        ///obecna wartosc posiadanych monet (brana z wartosci z aktualizacji).
        /// </summary>
        public string O_W_P_M
        {
            get { return o_w_p_m; }
        }

        /// <summary>
        ///ilość sprzedanych sztuk.
        /// </summary>
        public string I_S_S
        {
            get { return i_s_s; }
        }

        /// <summary>
        /// poniesione wydatki na sprzedane monety(wszystkie monety w sumie).
        /// </summary>
        public string P_W_N_S_M
        {
            get { return p_w_n_s_m; }
        }

        /// <summary>
        /// cena sprzedaży (wszystkie sprzedane monety w sumie)
        /// </summary>
        public string C_S
        {
            get { return c_s; }
        }

        /// <summary>
        /// zysk / strata z wszystkch sprzedanych monet
        /// </summary>
        public string Z_S_W_S_M
        {
            get { return z_s_w_s_m; }
        }
        #endregion

    }
}
